package com.woniu.bank.service;

import com.woniu.bank.dto.GroupDTO;
import com.woniu.bank.dto.GroupMemberDefaultDataDTO;
import com.woniu.bank.dto.NewGroupDTO;
import com.woniu.bank.vo.GroupMemberDefaultDataVO;
import com.woniu.bank.vo.GroupVO;

import java.util.List;

/**
 * @author 晨星
 * @date 2023/01/04/14:34
 */
public interface GroupService {

    /**
     * 条件查询联保小组
     *
     * @param group 联保小组
     * @return java.util.List<com.woniu.bank.vo.GroupVO>
     * @author 晨星
     * @date 2023/1/10 15:28
     **/
    List<GroupVO> conditionQuery(GroupDTO group);

    /**
     * 根据组长客户号，显示组长名称
     *
     * @param groupLeaderNo 组长客户号
     * @return java.lang.String
     * @author 晨星
     * @date 2023/1/10 15:29
     **/
    String selectGroupLeaderName(String groupLeaderNo);

    /**
     * 新增联保小组申请
     *
     * @param group 联保小组
     * @return int
     * @author 晨星
     * @date 2023/1/10 16:02
     **/
    int add(NewGroupDTO group);

    /**
     * 软删除
     *
     * @param group 联保小组
     * @return 返回执行结果
     * @author 晨星
     * @date 2023/1/10 16:02
     **/
    int isDeleted(GroupVO group);

    /**
     * 生成小组默认数据
     *
     * @param members 所有联保成员
     * @return com.woniu.bank.vo.GroupMemberDefaultDataVO
     * @author 晨星
     * @date 2023/1/10 16:02
     **/
    GroupMemberDefaultDataVO createDefaultData(List<GroupMemberDefaultDataDTO> members);

    /**
     * 根据成员客户号删除成员的小组编号
     *
     * @param groupMemberNoList 成员客户号的集合
     * @author 晨星
     * @date 2023/1/10 16:02
     **/
    void quit(List<String> groupMemberNoList);
}
